﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections; //Nødvendig for at kunne returnere en itterator

using Interfaces;
using System.Data.SqlClient;
using Indstillinger; //Vores Interface libary

namespace Model
{
    [Serializable]
    public class ProduktCollection
    {
        //Attribut
        private List<Produkt> produkter; //Produkt aggregeres op i ProduktCollection

        //Konstruktør
        public ProduktCollection()
        { 
            produkter = new List<Produkt>();
        }

        //Metoder
        public void OpretProdukt(string produktNr, string betegnelse, int stkPrPakke, int beholdning, int minimumBeholdning, double pakkePris, Leverandør leverandør)
        {
            Produkt nytProdukt = Produkt.OpretProdukt(produktNr, betegnelse, stkPrPakke, beholdning, minimumBeholdning, pakkePris, leverandør);
            produkter.Add(nytProdukt);
        }

        public Produkt FindProduktIModel(string produktNr)
        {
            foreach (Produkt produkt in produkter)
                if (produktNr == produkt.ProduktNr)
                    return produkt;
            return null;
        }

        public Produkt NedskrivBeholdning(string produktNr) 
        {
            Produkt aktuelProdukt = FindProduktIModel(produktNr);
            if (aktuelProdukt != null)
            {
                aktuelProdukt.NedskrivBeholdning();
            } 
            return aktuelProdukt;
        }

        public IEnumerator GetProduktIterator()
        {
            return produkter.GetEnumerator();
        }

        public void SletProdukt(Produkt produkt)
        {
            produkter.Remove(produkt);
        }

        public void AddProdukt(Produkt nuværendeProdukt)
        {
            produkter.Add(nuværendeProdukt);
        }
    }
}
